DISTRIBUCIÓN
(Normal y Lineal)

“Sustituir ideas por cálculos” (Dirichlet)

“Una síntesis vale por diez análisis” (Eugenio d’Ors)

“Solo pensamos en signos” (Jacques Derrida)



Distribución Normal en Contexto

Semántica

La distribución de una expresión abierta dentro del contexto o ámbito de otra expresión y representa a la expresión formada por n expresiones iguales a y, en donde en la de orden i se ha sustituido por xi.


Sintaxis Los paréntesis cuadrados en negrita indican el contexto o ámbito de la distribución. I indica el ámbito izquierdo de la expresión y D el ámbito derecho. I y D podrían no existir (ser expresiones nulas).

Una distribución exige dos pares de paréntesis cuadrados anidados. Los internos delimitan la expresión a distribuir. Los externos delimitan el ámbito de la distribución.


Definición informal

[I [x1 x2 ... xn] D] =: I x1 D I x2 D ... I xn D

La definición de la distribución se realiza de manera informal, aunque ilustrativa. No se hace formalmente, porque si se pudiera hacer, entonces la operación sería derivada, no primitiva.


Justificación

La distribución es un mecanismo descriptivo que permite simplificar la especificación de una serie de expresiones que tienen una parte común.


Ejemplos
  1. ([(u [a b c] v)]) // rep. ((u a v) (u b v) (u c v)) eq. (uav ubv ucv)

  2. ([x+[a b]] y) // rep. (x+a x+b y)

  3. ([(x+[a b] y)]) // rep. ((x+a y) (x+b y))

  4. (x=([(u [a b] v)])) // rep. (x=((u a v) (u b v))) eq. (x=(uav ubv))

  5. ([x=(u [a b] v)]) // rep. (x=(u a v) x=(u b v))

  6. {[[a b c]+1]} // rep. {a+1 b+1 c+1}

  7. (x = {[[a b c]1]}) // rep. (x = {a1 b1 c1})

  8. ([ab[u v w]]) // rep. (abu abv abw)

  9. ([x/[a b c] ]) // rep. (x/a x/b x/c)

  10. ([x=[1 2 3] ]) // rep. (x=1 x=2 x=3)

  11. ([x>[a b c ]) // rep. (x>a x>b x>c)

  12. ([[x y z]! ]) // rep. (x! y! z!)

  13. ([[x y z]←a]) // rep. (x←a y←a z←a)

  14. ([a+[3 5 7]]) // rep. (a+3 a+5 a+7)

  15. ([a (b [c d]) e]) // rep. (a (b c) e a (b d) e)

  16. (x° = [a b c]°) // ev. x=[a b c]
    ([u x v]) // rep. (u a v u b v u c v)


  17. El bucle For-Next del lenguaje Basic

    For i = n1 To n2
    x
    Next


    se puede expresar así:
    ([(i=[n1…n2] x)])

Axiomas
  1. Cuando la expresión a distribuir tiene un solo componente, se evalúa como la misma expresión sin los dos pares de paréntesis cuadrados.

    ⟨( ([x [y] z]) = (x y z)) ← (y# = 1) )⟩

    ⟨( ([[x]]) = x) ← (x# = 1) )⟩


    Obsérvese que se ha cambiado la sustitución potencial por la inmediata.

    Ejemplos:

    ([1 2 3 [abc]]) // ev. (1 2 3 abc)

    ([[abc] 1 2 3]) // ev. (abc 2 3 4)

    ([1 2 [abc] 3 4]) // ev. (1 2 abc 3 4)

    ([[abc]]) // ev. abc


  2. Cuando no existe ámbito izquierdo ni ámbito derecho, no hay distribución.

    ⟨( [[x]] = x )⟩

    Ejemplos:

    [[abc]] // ev. abc
    ([[a b]]) // ev. (a b)


  3. Distribución vacía: [].

    ([] = θ)
    ⟨( ([x [] y]) = (x y) )⟩


    Ejemplo:
    ([1 [] 2]) // ev. (1 2)

Distribuciones de ámbito común

Cuando dos expresiones distributivas comparten el mismo ámbito, se tiene una distribución de ámbito común. Si tenemos x=(x1 x2 ... xn)↓ e y=(y1 y2 ... yn)↓, una definición informal sería:

[I [x] C [y] D] =: [I x1 C [y] D] ... [I xn C [y] D]

I indica el ámbito izquierdo de la expresión de las dos expresiones a distribuir, D el ámbito derecho y C el ámbito central entre las dos expresiones. I, C y D podrían no existir (ser expresiones nulas).

Como la evaluación es de izquierda a derecha, primero se distribuye x, y sobre el resultado se distribuye y. La segunda expresión es la que varía más rápidamente.

Esta definición es generalizable para cualquier número de expresiones a distribuir con un ámbito común.

Ejemplos:
  1. ([[x y] [a b] ]) // rep. (x a x b y a y b)

  2. ([[1 2]*[4 5]]) // rep. (1*4 1*5 2*4 2*5) ev. (4 5 8 10)

  3. (u = [1 2])
    (v = [2 3])
    ([(a+u)*(b+v)]) // rep. ((a+1)*(b+2)*(a+1)*(b+3)*(a+2)*(b+2)*(a+2)*(b+3))

Distribuciones de orden superior

Una distribución puede, a su vez, ser distribuida. En el siguiente ejemplo se ha utilizado la evaluación diferida para ilustrar este mecanismo:

(x = [a [b c] d]°) // ev. x=[a [b c] d]

(y = [1 [x 2 x] 3]) // rep. (y = [1 [[a [b c] d] 2 [a [b c] d]] 3])



Distribución Lineal en Contexto

Semántica

La distribución lineal de dos expresiones abiertas dentro de otra expresión abierta (I x C y D)↓ es igual a n expresiones abiertas iguales a esta última, en donde en la expresión de orden i se ha sustituido x por xi e y por yi. I indica el ámbito izquierdo de la expresión de las dos expresiones a distribuir, D el ámbito derecho y C el ámbito entre las dos expresiones. I, C y D podrían no existir (ser expresiones nulas).


Sintaxis

[I ⌊x1 x2 … xn⌋ C ⌊y1 y2 … yn⌋ D]


Definición informal

[I ⌊x⌋ C ⌊y⌋ D] =: I x1 C y1 D ... I xn C yn D


Justificación

La distribución lineal es un mecanismo descriptivo que también permite simplificar la especificación de una serie de expresiones que tienen una parte común.


Observaciones
Ejemplos
  1. [(⌊a b⌋ ⌊1 2⌋)]) // rep. ((a 1) (b 2))

  2. ([(⌊a b⌋ x ⌊1 2⌋)]) // rep. ((a x 1) (b x 2))

  3. ([(⌊x y z⌋ = ⌊1 2 3⌋)]) // rep. ((x = 1) (y = 2) (z = 3))

  4. ([(⌊x y⌋ + ⌊a b⌋ + z)]) // rep. ((x+a+z) (y+b+z))

  5. (x = ⌊a b c⌋)
    ([x x]) // rep. (a a b b c c) eq. aabbcc


  6. (x = ⌊a b c⌋

    (y= [xx]) // rep. (y = aa bb cc)

    (z = [yy]) // rep. (z = aaaa bbbb cccc)


  7. ([a ⌊1 2⌋ b ⌊4 5 6⌋ c]) // rep. (a 1 b 4 a 2 b 5 a b 6)

  8. ([(⌊a b⌋ ⌊c d⌋ ⌊u v⌋ ⌊w x⌋]) // rep. (a c b d u w a c b d u x a c b d v w a c b d v x) eq. acbduwacbduxacbdvwacbdvx

Axiomas
  1. Cuando la expresión a distribuir tiene un solo componente, se evalúa como la misma expresión sin los dos pares de paréntesis cuadrados.

    ⟨( ([x ⌊y] z]) = (x y z)) ← (y# = 1) )⟩

    ⟨( ([x⌋]) = x) ← (x# = 1) )⟩


    Obsérvese que se ha cambiado la sustitución potencial por la inmediata.

    Ejemplos:

    ([1 2 3 ⌊abc⌋]) // ev. (1 2 3 abc)

    ([⌊abc⌋ 1 2 3]) // ev. (abc 2 3 4)

    ([1 2 [abc] 3 4]) // ev. (1 2 abc 3 4)

    ([[abc]]) // ev. abc


  2. Distribución lineal vacía: ⌊⌋.

    (⌊⌋ = θ)
    ⟨( ([x ⌊⌋ y]) = (x y) )⟩


    Ejemplo:
    ([1 ⌊⌋ 2]) // ev. (1 2)

Distribución Local

Semántica

La distribución local es una operación en el que no existe ámbito explícito, sino implícito. El ámbito implícito está delimitado por blancos o paréntesis. La distribución local puede ser normal o lineal.

Ejemplos
  1. a[u v w] // rep. au av aw

  2. [u v w]b // rep. ub vb wb

  3. a[u v w]b // rep. aub avb awb
  4. ( a[u v w]b ) // rep. (aub avb awb)

  5. a[1…10] // rep. a1 a2 ... a10

  6. a[1…n] // rep. a1 a2 ... an

  7. {a[u v w]} // rep. {au av aw]

  8. a [u v w] b // se autoevalúa

  9. [a b]+[a b] // ev. 2*[a b]

  10. (⌊a b⌋+⌊u v⌋) // rep. (a+u b+v)

  11. (⌊3 4⌋*⌊a b⌋) // rep. (3*a 4*b)

  12. a [u v w] b // se autoevalúa